val get_dims : Sdlvideo.surface -> int * int
val sdl_init : unit -> unit
val wait_key : unit -> unit
val show : Sdlvideo.surface -> Sdlvideo.surface -> unit
type point = { x : int; y : int; }
type carre = { sommet : point * point * point * point; }
type triangle = { p1 : point; p2 : point; p3 : point; }
val insert_color : 'a -> 'a list -> 'a list
val carre_plein : carre -> Sdlvideo.surface -> int -> bool
val milieu : point -> point -> point
val milieu_carre : carre -> point
val id : carre -> carre -> bool
val delete : carre -> carre list ref -> carre list
val divise_carre : carre -> carre list ref -> carre list
val init_all : Sdlvideo.surface -> carre list ref -> carre list
val quadtree_boucle :
  carre -> carre list ref -> Sdlvideo.surface -> int -> carre list
val quadtree : Sdlvideo.surface -> int -> carre list
val draw_droite_hori : point -> point -> Sdlvideo.surface -> unit
val draw_droite_vert : point -> point -> Sdlvideo.surface -> unit
val draw_carre : carre -> Sdlvideo.surface -> unit
val draw_quadtree : carre list -> Sdlvideo.surface -> unit
val elt : int * 'a list -> 'a
val parse_hauteur :
  ('a * 'b * 'c) list ->
  'd list -> ('d * 'a * 'b * 'c) list -> ('a * 'b * 'c) list * 'd list
val height_of_color : 'a * 'b * 'c -> ('a * 'b * 'c) list * int list -> int
val doublons : 'a -> 'a list -> bool
val tri : 'a list -> 'a list
val cherche_ds_liste : int -> 'a -> 'a list -> int
val liste_trois_to_un : triangle list -> point list
val quadtree_obj :
  triangle list -> Sdlvideo.surface -> (int * int * int * int) list -> unit
val makegoodliste : carre list -> triangle list
val main :
  string ->
  string ->
  string -> (int * int * int * int) list -> int -> int -> unit -> unit
